﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CapaDTO;
using MySql.Data.MySqlClient;


namespace CapaConexion
{
    public class DAOProducto
    {

        Error error = new Error();

        public Producto obtenerProducto(int Id_producto1)
        {
            Producto auxProducto = new Producto();
            String cadena = "Server=localhost;User id=root;Database=pizzeria;";
            MySqlConnection Conexion = new MySqlConnection(cadena);
            MySqlCommand command = Conexion.CreateCommand();
            command.CommandText = "SELECT * FROM Producto WHERE Id_producto = '" + Id_producto1 + "';";

            try
            {
                Conexion.Open();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error al abrir la Conexion " + ex.Message);
            }

            MySqlDataReader reader = command.ExecuteReader();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    auxProducto.Resultado = "1";
                    string auxIDProducto = reader ["Id_producto"].ToString();
                    auxProducto.Id_producto1 = Int32.Parse(auxIDProducto);

                    


                    string auxValor = reader["Valor"].ToString();
                    auxProducto.Valor = Int32.Parse(auxValor);

                    string auxTipo = reader["ID_Tipo"].ToString();
                    auxProducto.Id_tipo1 = Int32.Parse(auxTipo);

                               

                    
                }
            }
            else
            {
                auxProducto.Resultado = "0";
            }

            return auxProducto;


        }



        public Error modificarProducto(Producto nuevo)
        {
            String cadena = "Server=localhost;User id=root;Database=pizzeria;";
            MySqlConnection Conexion = new MySqlConnection(cadena);
            MySqlCommand command = Conexion.CreateCommand();
            command.CommandText = "UPDATE Producto SET Nombre = '" + nuevo.Nombre_producto + "', Valor = '" + nuevo.Valor + "', Id_tipo = '" + nuevo.Id_tipo1 + "', '" + "' WHERE Id_producto1 = " + nuevo.Id_producto1 + ";";
            try
            {
                Conexion.Open();
                command.ExecuteNonQuery();
            }
            /*Se hace un catch a MySqlException para verificar si hay algún error con la sentencia SQL realizada*/
            catch (MySqlException mySqlEx)
            {
                error.CodError = mySqlEx.Number;
                error.DescError = "Error: " + mySqlEx.Message;
                return error;
            }
            /*Con Exception controlamos cualquier otra excepción que pueda ocurrir*/
            catch (Exception ex)
            {
                error.DescError = "Error: " + ex.Message;
                return error;
            }
            /*Si no hay excepciones enviamos un código de error 0 que significa que no hay errores*/
            error.CodError = 0;
            error.DescError = "No hay errores";
            return error;
        }

      

        public Error eliminarProducto(Producto nuevo)
        {
            String cadena = "Server=localhost;User id=root;Database=pizzeria;";
            MySqlConnection Conexion = new MySqlConnection(cadena);
            MySqlCommand command = Conexion.CreateCommand();
            command.CommandText = "DELETE FROM Producto WHERE Id_producto1 = " + nuevo.Id_producto1 + ";";
            try
            {
                Conexion.Open();
                command.ExecuteNonQuery();
            }
            /*Se hace un catch a MySqlException para verificar si hay algún error con la sentencia SQL realizada*/
            catch (MySqlException mySqlEx)
            {
                error.CodError = mySqlEx.Number;
                error.DescError = "Error: " + mySqlEx.Message;
                return error;
            }
            /*Con Exception controlamos cualquier otra excepción que pueda ocurrir*/
            catch (Exception ex)
            {
                error.DescError = "Error: " + ex.Message;
                return error;
            }
            /*Si no hay excepciones enviamos un código de error 0 que significa que no hay errores*/
            error.CodError = 0;
            error.DescError = "No hay errores";
            return error;
            
        }

        

        public Error insertarProducto(Producto nuevo)
        {
            throw new NotImplementedException();
        }
    }
}
